package com.he.hsdyc.common.handle.parent2;


import com.google.gson.reflect.TypeToken;
import com.he.hsdyc.config.builder.TextBuilder;
import com.he.hsdyc.service.ParentLoginService;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import java.lang.reflect.Type;
import java.util.Map;

/**
 * 关注事件
 * @author
 */
@Component
@Qualifier("subscribeHandler_parent2")
public class SubscribeHandler2 extends AbstractHandler {


//    @Autowired
//    private ParentLoginService parentLoginService;
//    @Autowired
//    private UserService userService;
//
//
//
//    @Autowired
//    private BindService bindService;

    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, @Qualifier("wxMpService_parent2")WxMpService wxMpService_parent2,
                                    WxSessionManager sessionManager) throws WxErrorException {

        this.logger.info("新关注家长端用户 OPENID: " + wxMessage.getFromUser());
        String parent_openId=wxMessage.getFromUser();

//        //处理二维码中的参数
//        String eventKey=wxMessage.getEventKey();
//        this.logger.info("eventKey:"+eventKey);
//        if(eventKey!=null) {
//            String tempParam=eventKey.split("_")[1];
//            Type type = new TypeToken<Map<String, Long>>() {}.getType();
//            Map<String,Long> params= WxMpGsonBuilder.create().fromJson(tempParam,type);
//
//            params.put("clientType",1l);
//
//            Long userId=params.get("userId");
//
//            this.logger.info("扫描userId: " +userId);
//            if(userId!=null){  //扫描收款二维码的校长
//                User user=userService.findOneUser(userId);
//                //是否已扫过账号二维码
//                if(user.getAccountOpenId()!=null&&!"".equals(user.getAccountOpenId())){
//                    return new TextBuilder().build("您已扫过转账二维码", wxMessage, wxMpService_parent2);
//                }
//
//
//
//                //更新收款openid
//                User newUser=new User();
//                newUser.setId(userId);
//                newUser.setAccountOpenId(wxMessage.getFromUser());
//                userService.updateInfo2(newUser);
//                return new TextBuilder().build("欢迎扫描转账二维码", wxMessage, wxMpService_parent2);
//
//            }
//
//
//
//            String result = parentLoginService.doParentLogin(wxMessage.getFromUser(), params);
//            if(QrConstant.ClientType.PARENT.equals(result)) {
//                Bind bind = bindService.queryMInBindStudent(wxMessage.getFromUser());
//                return new TextBuilder().build("感谢关注家长端\n您关注的学生是：" + bind.getStuName(), wxMessage, wxMpService_parent2);
//
//            }else if(QrConstant.ClientType.PARENT_MINI.equals(result)){
//                Bind bind = bindService.queryMInBindStudent(wxMessage.getFromUser());
//                return new TextBuilder().build("感谢关注家长端\n您关注的学生是：" + bind.getStuName()+"\n小程序功能已开通，点击跳转 \n☞ <a data-miniprogram-appid='wx857af4e7b0451188' data-miniprogram-path='pages/loading/index?openId=" + parent_openId + "' href='http://wechat4.xiaozhangkeji.com' >☆立即使用小程序☆</a>", wxMessage, wxMpService_parent2);
//
//            }else if(QrConstant.ClientType.VISITOR.equals(result)){
//                return new TextBuilder().build("感谢关注家长端", wxMessage, wxMpService_parent2);
//
//            }else{
//                return new TextBuilder().build("关注家长端出错了\n", wxMessage, wxMpService_parent2);
//            }
//        }
//


        try {
            return new TextBuilder().build("欢迎关注家长端\n", wxMessage, wxMpService_parent2);
        } catch (Exception e) {
            this.logger.error(e.getMessage(), e);
        }

        return null;
    }



}
